package com.zwr.sheller.customer.Service;

import com.zwr.sheller.core.pojo.Goods;
import com.zwr.sheller.core.pojo.GoodsVo;

import java.util.List;
import java.util.Map;

/**
 * @author 付龙江
 * @date 2022/1/12 17:26
 */
public interface IndixService {
    /**
     * 返回首页定位地址
     * @return 返回城市
     */
    String selectAddressCity(String cityName) throws Exception;

    /**
     * @return 点开搜索后热点和历史记录
     */
    Map<String,Object> selectHistoryAndHot();


    /**
     * 商品手动预热向redis中添加
     * string  键是商品id  值是一个map
     */
    void addRedisGoods();

    /**
     * 首页搜索
     * @param name 搜索的东西
     * @return 返回vo信息
     */
    List<Map<String, Object>> searchGoods(String name) throws Exception;

    /**
     * 根据id查商品详情
     * @param goodsId 商品编号
     * @return 返回商品详情
     */
    Map<String,Object> selectByGoodsId(Long goodsId) throws Exception;

    /**
     * 根据id查询对应商品简略信息
     * @param goodsId 商品编号
     * @return 返回简略信息
     * @throws Exception 异常
     */
    GoodsVo selectById(Long goodsId) throws Exception;

    /**
     * @return 首页热销商品
     */
    List<Map<String,Object>> selectHotSales() throws Exception;

    /**
     * 拿到商品的评价分数
     * @param goodsId 商品编号
     * @return 返回平均分数
     */
    Long selectGoodsRemark(Long goodsId);

    /**
     * 掌柜推荐
     * @param typeName 类型
     * @return 返回具体商品
     */
    List<Map<String,Object>> selectGoodsIsRecommend(String typeName);
}
